1. Field
Embodiments relate to the configuration of a set of queues for multi-protocol operations in a target driver.
2. Background
A storage controller may control access to storage for one or more host computational devices that may be coupled to the storage controller over a network. A storage management application that executes in the storage controller may manage a plurality of storage devices, such as disk drives, tape drives, flash drives, etc., that are coupled to the storage controller. A host may send Input/Output (abbreviated as I/O or JO) commands to the storage controller and the storage controller may execute the I/O commands to read data from the storage devices or write data to the storage devices.
A host bus adapter (HBA) may comprise a circuit board and/or integrated circuit based adapter that may include components such as a Fibre Channel interface chip, where the Fibre Channel interface chip may be referred to as an embedded port. The host bus adapter may provide I/O processing and provide physical connectivity for the storage controller to a storage area network (SAN), where the storage area network includes a Fibre Channel switched fabric. The storage controller (via the host bus adapter) may act as a target that receives I/O commands from the one or more host computational devices, where the one or more host computational devices act as initiators of the I/O commands.
Communication between the hosts and the storage controller may occur over a Fibre Channel (FC) network, where Fibre Channel refers to an integrated set of architectural standards for data transfer being developed by the American National Standards Institute. Fibre Channel is a high-speed network technology primarily used for storage area networks. Fibre Channel Protocol (FCP) is a transport protocol that predominantly supports transports commands over Fibre Channel networks.
Fibre Channel may be split into five layers: a Protocol-mapping layer (FC-4), a common service layer (FC-3), a network layer (FC-2), a data link layer (FC-1), and a FC-0 layer that defines the physical link in the system, including the fibre, connectors, optical and electrical parameters for a variety of data rates. Layers FC-0 through FC-2 are also known as FC-PH, the physical layers of Fibre Channel, whereas FC-3 and FC-4 layers define how Fibre Channel ports interact with applications in computational devices. The FC-3 layer of the FC standard is intended to provide the common services for features such as striping, multicasting, etc.
FC-4, the highest layer in Fibre Channel, defines the application interfaces that execute over Fibre Channel. FC-4 specifies the mapping rules of upper layer protocols using the FC layers below. FC-4 is formed by a series of profiles that define how to map legacy protocols to Fibre Channel. Fibre Channel is capable of transporting both network and channel information, and profiles for network and channel protocols, such as, Small Computer System Interface (SCSI), Intelligent Peripheral Interface (IPI), High Performance Parallel Interface (HIPPI) Framing Protocol, Internet Protocol (IP), Link Encapsulation (FC-LE), Single-Byte Command Code Set Mapping (SBCCS), etc., may be specified or proposed as protocol mappings in FC-4.
Fibre Connection (FICON) is a protocol of the fibre channel architecture and may also be referred to by the formal name of FC-SB-5. FICON is a protocol layer that builds upon the Fibre Channel transport protocol. Further details of Fibre Channel protocol mapping for the Single-Byte Command Code Sets may be found in the publication, “Fibre Channel Single-Byte Command Code Sets Mapping Protocol-5 (FC-SB-5)”, Rev. 2.0, published by the American National Standards Institute on Mar. 26, 2013.
The basic building blocks of a Fibre Channel connection are called “Frames”. The frames contain the information to be transmitted (Payload), the address of the source (i.e., initiator) and destination (i.e., target) ports and link control information. Frames are broadly categorized as data frames and link control frames. Details of framing and signaling aspects of Fibre Channel may be found in the publication, “Fibre Channel Framing and Signaling-4 (FC-FS-4)”, Rev. 1.20, published by the American National Standard for Information Technology on Jul. 21, 2015. Details of link services aspects of Fibre Channel may be found in the publication, “Fibre Channel Link Services (FC-LS-3)”, Rev. 3.10, published by the American National Standard for Information Technology on Feb. 1, 2014. The Fibre Channel Protocol for SCSI Fourth Version (FCP-4) standard describes the frame format and protocol definitions required to transfer commands and data between a SCSI (Small Computer System Interface) initiator and target using the Fibre Channel family of standards. Further details of FCP-4 may be found in the publication, “Information Technology—Fiber Channel Protocol for SCSI, Fourth Version (FCP-4), Revision 02b” published by the International Committee for Information Technology Standards, on Jan. 3, 2011.
The storage controller may include a plurality of host bus adapters, where each host bus adapter may include a Fibre Channel Interface chip that is an interface to switches that allow communication over a Fibre Channel network between the storage controller and the plurality of hosts.
Fibre Channel storage area networks may use the Fibre Channel protocol (used by the hardware to communicate), the SCSI protocol (used by software applications to communicate to disks), and other protocols for communication. In Fibre channel, network connections are established between node ports (N_Ports) that are there in computers, servers, storage controllers, storage devices, printers, etc., and fabric ports (F_Ports) that are there in the Fibre channel switched fabric. A Fibre Channel switched fabric relies on one or more switches to establish direct, point-to-point connections between the source and target devices. Each Fibre Channel interface chip in the host bus adapters of the storage controller comprises a port that allows communication of the storage controller to the hosts over the Fibre Channel switched fabric.
Fibre Channel login takes place after a link is operational and the login may an extended link service protocol. Port login is a type of Fibre Channel login that is also known as PLOGI. Port login is used to establish a session between two N_Ports (devices) and is necessary before any upper level (i.e., upper layer) commands or operations can be performed. During the port login, two N_Ports (devices) swap service parameters and make themselves known to each other.